<?php namespace Common\Model;
use Hdphp\Model\Model;
/**
* 分类表模型
* 田昭鹏
*/
class Category extends Model{
	// 指定操作的表
	protected $table='category';
	// 自动验证
	protected $validate=array(
		array('cname','required','类型名称不能为空',3,3),
		// array('cname','unique','该分类已存在',3,3)
		);
	// 添加方法
	public function store(){
		// 自动验证
		if(!$this->create()) return FALSE;
		// 添加进数据库
		$this->add();
		// 返回值
		return TRUE;
	}

	// 编辑方法
	public function edit(){
		if(!isset($_POST['is_hot'])){
			$_POST['is_hot']=0;
		}
		// 自动验证
		if(!$this->create()) return FALSE;
		// 添加进数据库
		$this->save();
		// 返回值
		return TRUE;
	}

	// 获得其他分类
	public function getCategory($allData,$cid,$tid){
		// 找到当前传入cid的子集
		$sonCid=$this->getSon($allData,$cid);
		// 把自己压入数组
		$sonCid[]=$cid;
		// 判断不在数组中的分类
		$getData=$this->whereNotIn('cid',$sonCid)->get();
		// 返回数组信息
		return Data::tree($getData,'cname');
	}
	// 获得子集方法
	private function getSon($allData,$cid){
		// 声明一个数组
		$temp=array();
		// 循环添加
		foreach ($allData as $k => $v) {
			// 如果cid等于pid就添加
			if($cid==$v['pid']){
				// 压入数组
				$temp[]=$v['cid'];
				// 递归继续循环
				$temp=array_merge($temp,$this->getSon($allData,$v['cid']));
			}
		}
		// 返回数组
		return $temp;
	}



	// 删除方法
	public function del($cid){
		// 判断改分类中书否有子元素存在
		$result=$this->where('pid',$cid)->get();
		if($result){
			$this->error='该分类中存在子元素！';
			return FALSE;
		}else{
			// 删除数据库内容
			$result=$this->where('cid',$cid)->delete();
		}
		return TRUE;
	}

}





 ?>